package org.springblade.modules.admin.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.mp.support.Query;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 项目-电梯-工单视图列表：救援 查询条件
 * @author: Sharry
 * @createTime: 2024-09-03 15:07
 * @version: Version-1.0
 */
@Data
public class WeeklyReportRescueListPageDTO {
	/**
	 * 分页参数
	 */
	@ApiModelProperty(value = "分页参数")
	private Query query;

	/**
	 * 项目id
	 */
	@ApiModelProperty(value = "项目id")
	@NotNull(message = "项目id不能为空")
	private Long buildingId;

	/**
	 * 项目名称
	 */
	@ApiModelProperty(value = "项目名称")
	private String buildingName;

	/**
	 * 电梯id
	 */
	@ApiModelProperty(value = "电梯id")
	private Long elevatorId;

	/**
	 * 电梯名称-电梯位置
	 */
	@ApiModelProperty(value = "电梯位置")
	private String elevatorAddress;

	/**
	 * 救援工单创建时间
	 */
	@ApiModelProperty(value = "救援工单创建时间")
	private Date createTime;

	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	private Date endTime;

	/**
	 * 任务状态：1-准时 0-超时
	 */
	@ApiModelProperty(value = "任务状态：1-准时 0-超时")
	private Integer isOnTime;

	/**
	 * 困人原因列表，对应 Dict表的 dict_key 字段
	 */
	@ApiModelProperty(value = "困人原因列表")
	private List<String> reasonList;

	/**
	 * 到达耗时描述列表：
	 * 1: <= 10 minutes
	 * 2: 10~15 minutes
	 * 3: 15~20 minutes
	 * 4: 25~30 minutes
	 * 5: > 30 minutes
	 */
	@ApiModelProperty(value = "到达耗时描述列表")
	private List<Integer> arrivalTimeList;

	/**
	 * 完成耗时描述列表：
	 * 1: <= 10 minutes
	 * 2: 10~15 minutes
	 * 3: 15~20 minutes
	 * 4: 20~25 minutes
	 * 5: 25~30 minutes
	 * 6: > 30 minutes
	 */
	@ApiModelProperty(value = "完成耗时描述列表")
	private List<Integer> completionTimeList;

	/**
	 * 周报统计全局开始时间
	 */
	@ApiModelProperty(value = "周报统计全局开始时间")
	private Date weekBeginTime;

	/**
	 * 周报统计全局结束时间
	 */
	@ApiModelProperty(value = "周报统计全局结束时间")
	@NotNull(message = "周报统计全局结束时间不能为空")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date weekEndTime;
}
